01
指针是什么
内存地址的概念 · 指针变量的定义 · 取地址符& · 解引用符*
入门核心概念
02
指针的声明与初始化
指针类型 · 空指针NULL · 野指针的避免
基础安全
03
指针与基本数据类型
int指针 · char指针 · float指针 · void指针
类型void*
04
指针的算术运算
指针加减运算 · 指针与数组 · 指针比较
运算数组
05
指针与一维数组
数组名作为指针 · 通过指针遍历 · 下标关系
数组遍历
06
指针与二维数组
行指针与列指针 · 指针表示 · 遍历二维数组
二维行指针
07
指针与字符串
字符串指针 · 字符数组区别 · 字符串常量
字符串常量
08
指针数组
指针数组定义 · 应用场景 · 命令行参数
指针数组argv
09
数组指针
数组指针定义 · 与二维数组结合
数组指针进阶
10
指针与函数
函数指针定义 · 作为参数 · 回调函数
函数指针回调
11
指针函数
返回指针的函数 · 避免局部变量地址
返回指针警告
12
指针与结构体
结构体指针 · 通过指针访问成员 · ->运算符
结构体->
13
动态内存分配
malloc · calloc · realloc · free
堆内存分配
14
内存泄漏与野指针
常见内存错误 · 避免泄漏 · 调试技巧
调试安全
15
const与指针
const int *p · int * const p · const int * const p
const只读
16
多级指针
二级指针定义 · 与二维数组 · 应用
二级指针进阶
17
指针与文件操作
FILE指针 · 文件读写中的指针操作
文件FILE
18
指针与链表
单向链表创建 · 遍历 · 插入 · 删除
链表指针操作
19
指针与双向链表
双向链表指针操作 · 插入删除指针修改
双向链表prev/next
20
指针与栈
用指针模拟栈的入栈出栈操作
栈模拟
22
指针与二叉树
二叉树指针表示 · 前中后序遍历
二叉树递归
23
指针的强制类型转换
不同类型指针转换 · 注意事项
类型转换危险
24
函数指针数组
定义 · 应用:状态机、菜单驱动
函数指针数组状态机
25
指针与可变参数
va_list · va_start · va_arg · va_end 原理
可变参数stdarg
26
指针与内联汇编
在C中嵌入汇编时指针的使用
汇编内联
27
指针与内存对齐
结构体对齐 · 指针访问对齐内存
对齐结构体
28
指针与volatile
volatile指针使用场景 · 硬件寄存器
volatile硬件
29
指针与多线程
共享内存指针操作 · 原子操作
多线程原子
30
指针的高级调试技巧
GDB查看指针 · Valgrind内存检测
调试Valgrind